﻿using Jupiter.Infrastructure.Exceptions;
using Jupiter.Infrastructure.Responses;
using Wips.AppService.Publisher.PublishFlows.Models;
using Wips.AppService.Publisher.PublishFlows.Requests;
using Wips.AppService.Publisher.PublishFlows.Responses;

namespace Wips.AppService.Publisher.PublishFlows
{
    /// <summary>
    /// 发布流程创建
    /// </summary>
    public interface IPublishFlowAppService
    {
        /// <summary>
        /// 获取注册的服务
        /// </summary>
        /// <returns></returns>
        Task<PageResult<GetPublishFlowPagesResponse>> GetPageAsync(GetPublishFlowPagesRequest request);


        /// <summary>
        /// 获取发布流程详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<PublishFlowModel> GetById(string id);



        /// <summary>
        /// 获取对应流程中所有zip文件的目录表
        /// </summary>
        /// <param name="id"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        /// <exception cref="CoreException"></exception>
        Task<List<GetFlowNodeZipFileListResponse>> GetFlowZipFileListAsync(string id);



        /// <summary>
        /// 获取日志列表
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<List<PublishFlowLogModel>> GetLogListAsync(string id);
    }
}
